package br.com.jdcanado.gae.inforse.util;

import javax.faces.application.NavigationHandler;
import javax.faces.context.FacesContext;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;
import javax.servlet.http.HttpSession;

public class AuthorizationListener implements PhaseListener{
	public void afterPhase(PhaseEvent event) {		 
		FacesContext facesContext = event.getFacesContext();
		String currentPage = facesContext.getViewRoot().getViewId();
				 
		boolean isLoginPage = (currentPage.lastIndexOf("/paginas/login.xhtml") > -1);
		HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(true);
		Object currentUser = session.getAttribute("currentUser");
		
		//isLoginPage = true;
		
		if (!isLoginPage && currentUser == null) {
			NavigationHandler nh = facesContext.getApplication().getNavigationHandler();
			nh.handleNavigation(facesContext, null, "sessaoExpirada");
		}
	}
		 
	public void beforePhase(PhaseEvent event) {
		
	}
	 
	public PhaseId getPhaseId() {
		return PhaseId.ANY_PHASE;
	}	
}
